package cn.tedu.lucky.draw.server.job.listener;

import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobExecutionListener;

public class CsvToDBListener implements JobExecutionListener {
    /**
     * JobExecution 代表当前正在执行的批处理作业的示例，可以通过该对象获取作业的相关信息。
     * 如作业名称，作业参数，作业执行状态，作业执行的开始时间，结束时间等。
     *
     * getExecutionContext() 方法可以获取作业执行的上下文信息，通过该方法可以获取到在 beforeJob() 方法中设置的 beginTime 值。
     */
    @Override
    public void beforeJob(JobExecution jobExecution) {
        long beginTime = System.currentTimeMillis();
        jobExecution.getExecutionContext().putLong("beginTime", beginTime);
        System.out.println("CsvToDBListener.beforeJob() beginTime: " + beginTime);
    }

    @Override
    public void afterJob(JobExecution jobExecution) {
        long endTime = System.currentTimeMillis();
        System.out.println("CsvToDBListener.afterJob() endTime: " + endTime);
        long beginTime = jobExecution.getExecutionContext().getLong("beginTime");
        System.out.println("作业执行结束，总耗时："+(endTime-beginTime)+"毫秒");
    }
}
